1. Field
Embodiments of the invention relate to dynamic workload balancing in a thread pool.
2. Description of the Related Art
In a virtual tape storage system, a computer with hard disk drive storage and an automated tape library is used to emulate tape drives and tape cartridges. In this way, host systems performing Input/Output (I/O) operations to tape are in fact performing I/O operations to a computer with a set of hard disk drives emulating the tape storage.
A Virtual Tape Server (VTS) receives and processes I/O operations from the host systems. In some situations, components (e.g., hardware or software) within the VTS or components at different VTSs need to communicate using messages. The messages are processed by the receiving component using a plurality of threads of execution. Threads may be described as a sequence of instructions that execute independently and in parallel to perform services or functions. Threads may be said to be formed when a program splits itself into two or more simultaneously (or quasi-simultaneously) running tasks which share the memory and processor resources of the parent process. Each component may maintain a thread pool (i.e., a collection of threads) and assign these threads to process requests.
There is a need in the art for dynamic workload balancing in such a thread pool.